package cn.fscode.code.generator.model.req;

import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * 导入文档中表, word | excel
 *
 * @author shenguangyang
 */
@Getter
@Setter
public class ImportDocumentTableReq {
    /**
     * 数据源
     */
    @NotNull(message = "不能为空")
    private Long datasourceId;
    /**
     * 主键类型, 默认是bigint
     */
    private String pkType = "bigint";
    /**
     * 主键名称, 默认id
     */
    private String pkName = "id";
    /**
     * 主键长度
     */
    private Integer pkLength = 0;

    /**
     * 必填标识, 是否是必填项列中的必填项标志, eg: 文档中 [Y] 表示必填, [N或者空]表示非必填, 则这里输入 [Y]
     */
    @NotEmpty(message = "不能为空")
    private String requiredFlag;

    /**
     * 列描述 名称
     */
    @NotEmpty(message = "不能为空")
    private String columnCommentCol;

    /**
     * 列类型 名称, 对应到数据库字段类型
     */
    @NotEmpty(message = "不能为空")
    private String columnTypeCol;

    /**
     * 列名, 对应数据库字段名称
     */
    @NotEmpty(message = "不能为空")
    private String columnNameCol;

    /**
     * 是否必填列
     */
    @NotEmpty(message = "不能为空")
    private String requiredCol;

    /**
     * 表索引列标志
     */
    private String tableIndexCol;
    /**
     * 索引列标志, 比如单元格 = Y, 表示当前是一个索引字段, 不填则非索引字段
     */
    private String tableIndexFlag;

    /**
     * 表索引类型
     */
    private String indexType;

    /**
     * 索引方法
     */
    private String indexMethod;

    /**
     * 上传的文档路径
     */
    @NotEmpty(message = "不能为空")
    private String filePath;
}
